home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / net / getservbyport.c < prev    next >
C/C++ Source or Header  |  1988-07-01  |  1KB  |  39 lines

  1. /*
  2.  * Copyright (c) 1983 Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms are permitted
  6.  * provided that this notice is preserved and that due credit is given
  7.  * to the University of California at Berkeley. The name of the University
  8.  * may not be used to endorse or promote products derived from this
  9.  * software without specific prior written permission. This software
  10.  * is provided ``as is'' without express or implied warranty.
  11.  */
  12.  
  13. #if defined(LIBC_SCCS) && !defined(lint)
  14. static char sccsid[] = "@(#)getservbyport.c    5.4 (Berkeley) 3/7/88";
  15. #endif /* LIBC_SCCS and not lint */
  16.  
  17. #include <netdb.h>
  18.  
  19. extern int _serv_stayopen;
  20.  
  21. struct servent *
  22. getservbyport(port, proto)
  23.     int port;
  24.     char *proto;
  25. {
  26.     register struct servent *p;
  27.  
  28.     setservent(_serv_stayopen);
  29.     while (p = getservent()) {
  30.         if (p->s_port != port)
  31.             continue;
  32.         if (proto == 0 || strcmp(p->s_proto, proto) == 0)
  33.             break;
  34.     }
  35.     if (!_serv_stayopen)
  36.         endservent();
  37.     return (p);
  38. }
  39.